package com.plugin.manage.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 长者房间信息数据传输对象
 * 
 * @author mark
 * @date 2025-07-26
 */
@Data
@Schema(description = "长者房间信息数据传输对象")
public class ElderRoomDTO {

    /**
     * 主键ID
     */
    @Schema(description = "主键ID", example = "1")
    private Long id;

    /**
     * 老人id
     */
    @Schema(description = "长者用户ID", required = true, example = "1001")
    private Long elderId;

    /**
     * 房间编号
     */
    @Schema(description = "房间编号", required = true, example = "A101")
    private String roomNumber;

    /**
     * 楼栋
     */
    @Schema(description = "楼栋", example = "A栋")
    private String building;

    /**
     * 楼层
     */
    @Schema(description = "楼层", example = "1")
    private Integer floor;

    /**
     * 房间类型
     */
    @Schema(description = "房间类型", example = "单人间")
    private String roomType;

    /**
     * 床位数量
     */
    @Schema(description = "床位数量", example = "1")
    private Integer bedCount;

    /**
     * 房间面积
     */
    @Schema(description = "房间面积(平方米)", example = "25.5")
    private BigDecimal roomArea;

    /**
     * 房间状态 (0-空闲 1-已入住 2-维修中 3-预约中)
     */
    @Schema(description = "房间状态 (0-空闲 1-已入住 2-维修中 3-预约中)", example = "1")
    private Integer roomStatus;

    /**
     * 月租金
     */
    @Schema(description = "月租金(元)", example = "3000.00")
    private BigDecimal monthlyRent;

    /**
     * 押金
     */
    @Schema(description = "押金(元)", example = "6000.00")
    private BigDecimal deposit;

    /**
     * 房间设施
     */
    @Schema(description = "房间设施", example = "空调,电视,独立卫生间,阳台")
    private String facilities;

    /**
     * 朝向
     */
    @Schema(description = "房间朝向", example = "南向")
    private String orientation;

    /**
     * 是否有阳台
     */
    @Schema(description = "是否有阳台 (0-无 1-有)", example = "1")
    private Integer hasBalcony;

    /**
     * 是否有独立卫生间
     */
    @Schema(description = "是否有独立卫生间 (0-无 1-有)", example = "1")
    private Integer hasPrivateBathroom;

    /**
     * 备注信息
     */
    @Schema(description = "备注信息", example = "房间采光良好")
    private String remarks;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间", example = "2025-07-26 10:30:00")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间", example = "2025-07-26 11:30:00")
    private LocalDateTime updateTime;

    /**
     * 删除标记 (0-未删除 1-已删除)
     */
    @Schema(description = "删除标记 (0-未删除 1-已删除)", example = "0")
    private Integer del;
}
